"""
多任务的介绍：
    概述：
        多任务指的是：多个任务的执行方式，按照执行方式不同，分为：并发、并行
    面试题：并行和并发的区别？
        并发：多个任务同时请求执行，但是在同一个瞬间，CPU只能执行一个任务，于是安排他们交替执行，看起来好像是同时执行的，其实不是，CPU在进行高效的切换
        并行：多个任务同时执行，前提：需要多核CPU
    进程和线程介绍：
        进程：指的是 可执行程序，文件，例如：.exe， 1个.exe文件=1个进程
        线程：指的是 进程的执行路径，执行单元。

        白话解释：
            车：进程， 多辆车=多进程
            车道：线程，单车道=单线程，多车道=多线程
    进程介绍：
        进程指的是（Process），是CPU分配资源的最小单位，例如：CPU给微信多少资源，给QQ多少资源。。。
        多进程的基本工作方式：1个.exe=1个进程，程序执行运行起来后形成一个主进程，在主进程上可以创建子进程。

    线程介绍：
        线程指的是（Thread），是进程的执行单元，是CPU执行任务的最小单位。
        多线程的基本工作方式：1个进程可以创建多个线程，每个线程可以执行不同的任务。

    多线程的优势：
        1.可以提高程序的执行效率
        2.可以提高程序的响应速度
        3.可以提高CPU的利用率

    多线程的实现步骤：
        1：导包
            import threading
        2: 创建线程对象
            线程对象 = threading.Thread(target=函数名)
        3: 启动线程
            线程对象.start()
"""
# 1：导包
import threading
import time


# 定义函数，模拟：写代码。
def coding():
    for i in range(10):
        print("正在写代码...")
        time.sleep(1)

# 定义函数，模拟：听音乐
def music():
    for i in range(10):
        print("正在听音乐...")
        time.sleep(1)

if __name__ == '__main__':
    # 2: 创建线程对象
    t1 = threading.Thread(target=coding)
    t2 = threading.Thread(target=music)

    # 3: 启动线程
    t1.start()
    t2.start()